/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntidadesPublicacion;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author profesor07
 */
@Entity
@Table(name = "revista")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Revista.findAll", query = "SELECT r FROM Revista r"),
    @NamedQuery(name = "Revista.findByIdRevista", query = "SELECT r FROM Revista r WHERE r.idRevista = :idRevista"),
    @NamedQuery(name = "Revista.findByTitulo", query = "SELECT r FROM Revista r WHERE r.titulo = :titulo"),
    @NamedQuery(name = "Revista.findByFechaPublicacion", query = "SELECT r FROM Revista r WHERE r.fechaPublicacion = :fechaPublicacion")})
public class Revista implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "IdRevista")
    private Integer idRevista;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "Titulo")
    private String titulo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "FechaPublicacion")
    @Temporal(TemporalType.DATE)
    private Date fechaPublicacion;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "revista")
    private List<Permisoslegales> permisoslegalesList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "revista")
    private List<Edicion> edicionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "revista")
    private List<Comiteeditorial> comiteeditorialList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "revista")
    private List<Pagoslegales> pagoslegalesList;

    public Revista() {
    }

    public Revista(Integer idRevista) {
        this.idRevista = idRevista;
    }

    public Revista(Integer idRevista, String titulo, Date fechaPublicacion) {
        this.idRevista = idRevista;
        this.titulo = titulo;
        this.fechaPublicacion = fechaPublicacion;
    }

    public Integer getIdRevista() {
        return idRevista;
    }

    public void setIdRevista(Integer idRevista) {
        this.idRevista = idRevista;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public Date getFechaPublicacion() {
        return fechaPublicacion;
    }

    public void setFechaPublicacion(Date fechaPublicacion) {
        this.fechaPublicacion = fechaPublicacion;
    }

    @XmlTransient
    public List<Permisoslegales> getPermisoslegalesList() {
        return permisoslegalesList;
    }

    public void setPermisoslegalesList(List<Permisoslegales> permisoslegalesList) {
        this.permisoslegalesList = permisoslegalesList;
    }

    @XmlTransient
    public List<Edicion> getEdicionList() {
        return edicionList;
    }

    public void setEdicionList(List<Edicion> edicionList) {
        this.edicionList = edicionList;
    }

    @XmlTransient
    public List<Comiteeditorial> getComiteeditorialList() {
        return comiteeditorialList;
    }

    public void setComiteeditorialList(List<Comiteeditorial> comiteeditorialList) {
        this.comiteeditorialList = comiteeditorialList;
    }

    @XmlTransient
    public List<Pagoslegales> getPagoslegalesList() {
        return pagoslegalesList;
    }

    public void setPagoslegalesList(List<Pagoslegales> pagoslegalesList) {
        this.pagoslegalesList = pagoslegalesList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idRevista != null ? idRevista.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Revista)) {
            return false;
        }
        Revista other = (Revista) object;
        if ((this.idRevista == null && other.idRevista != null) || (this.idRevista != null && !this.idRevista.equals(other.idRevista))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "EntidadesPublicacion.Revista[ idRevista=" + idRevista + " ]";
    }
    
}
